package com.xique.park.bean.vo.web.onDuty;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xique.common.core.annotation.Excel;
import com.xique.park.bean.transform.web.car.PayEndStatusConverter;
import com.xique.park.bean.transform.web.car.TrafficStatusConverter;
import com.xique.park.bean.transform.web.parkInAndOut.InTypeConverter;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 岗亭结算VO对象
 *
 * @author wld
 * @date 2022/3/17 13:58
 */
@Data
@NoArgsConstructor
@ExcelIgnoreUnannotated
public class OnDutySettlementVo implements Serializable {

    /**
     * 值班员ID
     */
    private Long clientUserId;

    /**
     * 值班员姓名
     */
    private String clientUserName;

    /**
     * 免费金额
     */
    private BigDecimal freeFee;

    /**
     * 未收费金额
     */
    private BigDecimal noPayFee;

    /**
     * 实收现金
     */
    private BigDecimal cashFee;

    /**
     * 已结算金额
     */
    private BigDecimal cashSettlementFee;

    /**
     * 未结算金额
     */
    private BigDecimal noCashSettlementFee;

    /**
     * 手动开闸次数
     */
    private Integer openGateNum;

    /**
     * 车牌号
     */
    @ExcelProperty(value = "车牌",index = 0)
    @Excel(name = "车牌",sort = 0)
    private String plate;

    /**
     * 待支付金额，单位：分
     */
    @ExcelProperty(value = "金额",index = 8)
    @Excel(name = "金额",sort = 8)
    private BigDecimal amt;

    /**
     * 结算状态（0：未结算，1：已结算）
     */
    @ExcelProperty(value = "结算状态",index = 9,converter = PayEndStatusConverter.class)
    @Excel(name = "结算状态",sort = 9,readConverterExp = "1=已结算, 0 =未结算")
    private Integer settlementStatus;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注",index = 10)
    @Excel(name = "备注",sort = 10)
    private String remark;

    /**
     * 入场时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "入场时间",index = 2)
    @ColumnWidth(50)
    @Excel(name ="入场时间",sort = 2,dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date inTime;

    /**
     * 入场通道名称
     */
    @ExcelProperty(value = "入场通道",index = 4)
    @Excel(name = "入场通道",sort = 4)
    private String inLaneName;

    /**
     * 车辆管理类型
     */
    @ExcelProperty(value = "管理类型",index = 1)
    @Excel(name = "管理类型",sort = 1)
    private String mngType;

    /**
     * 入场类型：1-自动放行 2-人工放行 3----
     */
    @ExcelProperty(value = "放行方式",index = 6,converter = InTypeConverter.class )
    @Excel(name = "放行方式",sort = 6,readConverterExp = "1=自动放行,2=人工放行")
    private String inTye;

    /**
     * 入场图片：多张图片用；分割
     */
    private String inPic;

    /**
     * 出场时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "出场时间",index = 3)
    @ColumnWidth(50)
    @Excel(name = "出场时间",sort = 3,dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date outTime;

    /**
     * 通道名称
     */
    @ExcelProperty(value = "出场通道",index = 5)
    @Excel(name = "出场通道",sort = 5)
    private String outLaneName;

    /**
     * 出场图片：多张图片用；分割
     */
    private String outPic;

    /**
     * 通行状态 0：未出场，1：已通行
     */
    @ExcelProperty(value = "通行状态",index = 7,converter = TrafficStatusConverter.class)
    @Excel(name = "通行状态",sort = 7, readConverterExp = "0=未出场,1=已通行")
    private Integer trafficStatus;

    /**
     * 出场类型
     */
    private String outType;
}
